package cn.kgm.makeGodV2.ruleEngine;

/**
 * 规则引擎策略接口
 *
 * @Version 1.8
 * @Author: Kappi
 * @Date: 2025-9-24 10:38
 * @Description: cn.kgm.makeGodV2.ruleEngine.RuleStrategy
 */
public interface RuleStrategy<T> {
    /**
     * 规则类型 - 用于标识和匹配规则
     */
    String getRuleType();

    /**
     * 验证规则条件是否满足
     *
     * @param context 规则上下文
     * @return 是否满足条件
     */
    boolean validate(RuleContext context);

    /**
     * 执行规则逻辑
     *
     * @param context 规则上下文
     * @return 规则执行结果
     */
    RuleResult<T> execute(RuleContext context);

    /**
     * 规则执行优先级（数值越小优先级越高）
     */
    default int getPriority() {
        return 10;
    }
}
